package asteroids.model.programs.expression;

import java.util.ArrayList;
import java.util.NoSuchElementException;

import asteroids.model.programs.type.*;
import asteroids.model.*;

public abstract class E{
	
	private int line;
	private int column;
	
	public E(int line, int column){
		this.line = line;
		this.column = column;
	}
	
	public abstract T getValue();
	
	public abstract void print();
	
	public boolean isVariable(){
		return false;
	}
	
	public int getLine(){
		return line;
	}
	
	public int getColumn(){
		return column;
	}
	
	public abstract ArrayList<VariableExpression> getVariables();
	
	public abstract String typecheck();
}